home *** CD-ROM | disk | FTP | other *** search
- ; Zerberus-Server
- ;
- ; Scriptfile zum Austausch neuer Nachrichten im Z-Netz-Format
- ; $VER: 3.03 / 19.04.1994
- ;
- ; Beschreibung :
- ; Server-Datei fuer das Zerberus-Protokoll. Die gesendeten und
- ; empfangenen Daten werden im Directory MBMSG:POINT/<Portname>/
- ; temporaer gespeichert.
- ; Stehen im Directory MBMSG:POINT/NETCALL/ die Dateien <USERNAME>.LHA
- ; und <USERNAME>.MSGNR, so werden nicht die neusten Nachrichten und
- ; Files aktuell exportiert und gepackt, sondern diese vorgepackten
- ; Daten benutzt.
- ;
- ; Das Script sollte so eingebunden werden, dass es ueber Flags
- ; auf die folgende Befehle zugreifen kann !
- ;
- ; CHECK FILE
- ; CONVERT FASTTOZER
- ; DISK DOWNLOAD
- ; DISK UPLOAD
- ; ECHO
- ; EXTERN
- ; FASTNET GETFILE
- ; GOTO
- ; IF
- ; LOGOUT <-- Option /FAST muss unterstuetzt werden !
- ; ON ERROR
- ; ON HANGUP
- ; POINT GETFILE
- ; POINT MAKEFILE
- ; WAIT
- ;
- ; Folgende Amiga-Dos-Befehle werden benutzt :
- ;
- ; COPY
- ; DELETE
- ;
- ; Einrichtung eines Netcalls fuer eine Netzbox (Node) :
- ; USERNAME : Name der anrufenden Node
- ; STRASSE : @NETCALL
- ;
- ; Einrichtung eines LocalGates fuer die Einbindung eines anderen
- ; lokalen Netzwerks :
- ; USERNAME : Name der anrufenden Node
- ; VORNAME : Gatename im Fastnet
- ; STRASSE : @LOCALGATE
- ;
- ; Einrichtung eines Gates fuer die Einbindung eines anderen
- ; globalen Netzwerks :
- ; USERNAME : Name der anrufenden Node
- ; VORNAME : Gatename im Fastnet
- ; NACHNAME : Gatename im Zerberus-Netz
- ; STRASSE : @GATE
- ;
- ; Beim Netcall (@NETCALL) muss die Datei MBDAT:USERNAME.NODES
- ; existieren (USERNAME = Name der anrufenden Node).
- ; In dieser Datei muss die anrufende Node und die Nodes stehen,
- ; die ueber sie zu erreichen sind.
- ; Datei fuer eine Node:
- ; 0
- ; S
- ; 0
- ; NAME DER ANRUFENDEN NODE
- ; 0 <- Hier auch ein LF setzen
- ;
- ; Wenn mehrere Nodes ueber den Netcall mit dem Fastnet versorgt werden,
- ; bitte den Aufbau der Datei in der Dokumentation FASTNET.DOK unter
- ; dem Stichwort Systemnachricht der Kategorie 0 nachlesen.
- ;
- ; Konstanten :
- ;
- TMPDIR = "mbmsg:point/'{port}'/" ; Dir fuer Tmp-Files
- NETDIR = "mbmsg:point/netcall/" ; NET-Directory
- MAXKBYT = 2000 ; Max. Filelaenge in KByte
- MSGFILE = "PUFFER" ; Name des Msg-Files
- NRFILE = "msgnr" ; File fuer Msg-Nummern
- COPYFILE= "'{NAME}'.lha" ; Vorgabefile (Pack-Event)
- COPYNR = "'{NAME}'.msgnr" ; File fuer Msg-Nummern
- PCKFILE = "called.lzh" ; Name des gepackten Files
- RECFILE = "caller.lha" ; Name des empfangenen Files
- TBOXDIR = "mbdat:" ; Dir fuer Fastnet-Nodefile
- PACKER = "lha -P-1 m ""'TMPDIR''PCKFILE'"" ""'TMPDIR''MSGFILE'"""
- ; Packen
- UPACKER = "lha -P-1 x ""'TMPDIR''RECFILE'"" ""'TMPDIR'"" ""'MSGFILE'"""
- ; Entpacken
- ;
- _on error POINT_ERROR ; Im Fehlerfall ...
-
- ;
- ; Pruefe auf normalen Netcall
- ;
-
- _if {STREET} != "@NETCALL" then _goto LOCALGATE
- OP_GET="/NETCALL" ; Setze Optionen
- OP_MAKE="/NETCALL"
- OP_CVT=""
- _goto START
-
- ;
- ; Pruefe auf LocalGate
- ;
- LOCALGATE:
- _if {STREET} != "@LOCALGATE" then _goto GATE
- OP_GET="/NETCALL/LOCALGATE" ; Setze Optionen
- OP_MAKE="/NETCALL"
- OP_CVT="/LOCALGATE"
- _goto START
-
- ;
- ; Pruefe auf Gate
- ;
- GATE:
- _if {STREET} != "@GATE" then _goto USERPOINT
- OP_GET="/NETCALL/GATE" ; Setze Optionen
- OP_MAKE="/NETCALL/GATE"
- OP_CVT="/GATE"
- _goto START
-
- ;
- ; User-Point
- ;
- USERPOINT:
- OP_GET="" ; Loesche Optionen
- OP_MAKE=""
- OP_CVT=""
-
- ;
- ; Aktiviere Handshaking
- ;
- START:
- _echo "#home##cls#POINT LOGIN OK ...^J"
- _echo "running ARC^Jrunning ARC^Jrunning ARC^Jrunning ARC^Jrunning ARC"
-
- ;
- ; Loesche alte Files / Rename, wenn File immer noch geoeffnet
- ;
-
- _if TMPDIR != "" then _extern/q delete "'TMPDIR'#?"
- _extern/q rename "'TMPDIR''PCKFILE'" "'TMPDIR''PCKFILE''{CALLNR}'"
- _extern/q rename "'TMPDIR''RECFILE'" "'TMPDIR''RECFILE''{CALLNR}'"
-
- ;
- ; Neue Nachrichten fuer andere Box sammeln & packen
- ;
-
- _check file "'NETDIR''COPYFILE'" EXPORT ; Existiert Sendefile ?
- _extern/q copy "'NETDIR''COPYFILE'" "'TMPDIR''PCKFILE'" ; Ja, vorgepackte
- _extern/q copy "'NETDIR''COPYNR'" "'TMPDIR''NRFILE'" ; Files benutzen
- _goto HANDSHAKE ; -> Warten auf Handshake
-
- ; Wenn Netcall, dann PMs exportieren.
-
- EXPORT:
- _if OP_GET == "" then _goto POINT_MAKE ; Netcall ? Nein -> Msgs sam.
- _convert FastToZer'OP_CVT' "'TMPDIR''MSGFILE'" ; PM-File erstellen
-
- ; Messages exportieren (PMs bei Usercall auch)
-
- POINT_MAKE:
- _on error/ignore
- _point makefile'OP_MAKE' "'TMPDIR''MSGFILE'" 'MAXKBYT' "'TMPDIR''NRFILE'"
- _on error POINT_ERROR
-
- ; Messages packen
-
- _extern/q 'PACKER'
-
- ;
- ; Handshaking senden
- ;
- HANDSHAKE:
- _echo/nolf "^U" ; NAK fuer Fertig senden
- _wait 2 ; Sernr. ignorieren
- _echo/nolf "^F" ; Bei uns ist es immer OK !
-
- ;
- ; Messages uploaden und downloaden
- ;
-
- _on hangup/ignore ; Auch weiter, wenn aufgelegt
-
- _disk upload "'TMPDIR''RECFILE'" ; File vom Point empfangen
- _disk download "'TMPDIR''PCKFILE'" ; File an Point schicken
-
- ;
- ; Geschickte Messages und PMs als gelesen markieren
- ;
-
- _on error/ignore ; Alle Fehler ignorieren
- _point makefile/setnr "'TMPDIR''NRFILE'" ; Gezogene Msgs = alte Msgs
-
- ;
- ; Nicht mehr benoetigte Files loeschen, empfangene Messages entpacken.
- ;
-
- _extern/q delete "'TMPDIR''PCKFILE'" "'TMPDIR''NRFILE'" "'TMPDIR''MSGFILE'" "'NETDIR''COPYFILE'" "'NETDIR''COPYNR'"
- _extern/q 'UPACKER'
-
- ;
- ; Bei Netcall PM-Netfile loeschen und Nodes in Liste aufnehmen
- ;
-
- _if OP_GET == "" then _goto POINT_GET ; Netcall ? Nein, verzw.
- _convert FastToZer'OP_CVT'/Del ; mbnet:-File loeschen
- _if {STREET} != "@NETCALL" then _goto POINT_GET ; @Netcall ? Nein, verzw.
- _fastnet getfile "'TBOXDIR''{NAME}'.NODES" ; Nodes in Nodeliste aufnehmen
-
- ;
- ; Alle Messages und PMs importieren
- ;
- POINT_GET:
- _point getfile'OP_GET' "'TMPDIR''MSGFILE'" ; Nachrichten einsortieren
-
- ; Alle Files loeschen
-
- POINT_ERROR: ; Fehler / Ende
- POINT_END:
- _if TMPDIR != "" then _extern/q delete "'TMPDIR'#?" ; Disk aufraeumen
- _logout/f ; Logout
-